With-Loop Scalarization - Merging Nested Array Operations
نویسندگان
چکیده
Abstract. Construction of complex array operations by composition of more basic ones allows for abstract and concise specifications of algorithms. Unfortunately, näıve compilation of such specifications leads to creation of many temporary arrays at runtime and, consequently, to poor performance characteristics. This paper elaborates on a new compiler optimization, named withloop-scalarization, which aims at eliminating temporary arrays in the context of nested array operations. It is based on with-loops, a versatile array comprehension construct used by the functional array language SaC both for specification as well as for internal representation of array operations. The impact of with-loop-scalarization on the runtime performance of compiled SaC code is demonstrated by several experiments involving support for arithmetic on arrays of complex numbers and the application kernel FT from the NAS benchmark suite.
منابع مشابه
Scalarizing Fortran 90 Array Syntax
Array syntax, existed in many languages, adds expressive power by allowing operations on and assignments to the array sections. When compiling to a uniprocessor machine, the array statement must be converted into a loop that maintains the correct semantics, by a process called scalarization. Scalarization presents a significant technical problem because an array assignment needs to be implement...
متن کاملLoop Fusion in High Performance Fortran Loop Fusion in High Performance Fortran
In this paper we investigate a unique problem associated with fusing loops within a High Performance Fortran (HPF) program. In particular, we discuss the issue of performing loop fusion in an HPF compiler when compiling Fortran90 array assignment statements for execution on a distributed-memory machine. During compilation of an HPF program, Fortran90 array assignment statements must be scalariz...
متن کاملArray Language Support for Wavefront and Pipelined Computations
Array languages such as Fortran 90, High Performance Fortran and ZPL are convenient vehicles for expressing data parallel computation. Unfortunately, array language semantics prohibit the natural expression of wavefront and pipelined computations, characterized by a sequential propagation of computed values across one or more dimensions of the problem space. As a result, programmers scalarize (...
متن کاملAdvanced Scalarization of Array Syntax
One task of all Fortran 90 compilers is to scalarize the array syntax statements of a program into equivalent sequential code. Most compilers require multiple passes over the program source to ensure correctness of this translation, since their analysis algorithms only work on the scalarized form. These same compilers then make additional subsequent passes to perform loop optimizations such as ...
متن کاملDesign of a Single-Layer Circuit Analog Absorber Using Double-Circular-Loop Array via the Equivalent Circuit Model
A broadband Circuit Analogue (CA) absorber using double-circular-loop array is investigated in this paper. A simple equivalent circuit model is presented to accurately analyze this CA absorber. The circuit simulation of the proposed model agrees well with full-wave simulations. Optimization based the equivalent circuit model, is applied to design a single-layer circuit analogue absorber using d...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2003